package test.net.sourceforge.pmd.ast;
import junit.framework.TestCase;
import net.sourceforge.pmd.ast.ASTCompilationUnit;
import net.sourceforge.pmd.ast.ASTEqualityExpression;
import net.sourceforge.pmd.ast.ASTInstanceOfExpression;
import net.sourceforge.pmd.ast.ASTRelationalExpression;
import net.sourceforge.pmd.ast.DiscardableNodeCleaner;
public class DiscardableNodeCleanerTest extends TestCase {
public void testRemoveDiscardNodes() {
ASTCompilationUnit cu = new ASTCompilationUnit(1);
ASTEqualityExpression ee = new ASTEqualityExpression(2);
ee.jjtSetParent(cu);
cu.jjtAddChild(ee, 0);
ASTInstanceOfExpression io1 = new ASTInstanceOfExpression(3);
io1.setDiscardable();
io1.jjtSetParent(ee);
ASTRelationalExpression re = new ASTRelationalExpression(4);
re.jjtSetParent(ee);
ee.jjtAddChild(io1, 0);
io1.jjtAddChild(re, 0);
assertEquals(cu.findChildrenOfType(ASTInstanceOfExpression.class).size(), 1);
DiscardableNodeCleaner c = new DiscardableNodeCleaner();
c.clean(cu);
assertEquals(cu.findChildrenOfType(ASTInstanceOfExpression.class).size(), 0);
}
}